草庐IT

php - 带php的Haversine公式

全部标签

php - 登录加载页面

我有一个用户可以登录的php站点。一旦他们提交了带有凭据的POST数据,他们就会被带到一个页面,该页面会启动一个session并检查database。在用户最终被重定向到站点后端之前,此过程需要很长时间。在此期间,用户站在空白的白页上。我想显示某种加载页面,但是当页面上有任何可打印的内容时,由于重定向,我收到了header错误。如何创建加载页面?我知道ajax是一种选择,但它是我唯一的选择吗?更新:PHP应用耗时长主要是因为每次登录都依赖国外的API需要授权以及计费数据需要查询。我不是想掩盖我可以轻松修复的东西,我是想创建一个更好的用户界面。登录过程大约需要10秒。

php - ArrayObject 迭代

问题:当手动设置或读取值时,ArrayObject会按预期工作,但是当使用函数(例如foreach)对其进行迭代时,事情会变得很糟糕。它不调用我定义的offset*方法,而是使用ArrayIterator方法。代码:类:classobsecureArrayextendsArrayObject{publicfunctionoffsetSet($name,$value){call_user_func_array(array('parent',__FUNCTION__),array(base64_encode($name),base64_encode($value)));}publicfun

php - 我可以使用 header() 来传递查询字符串参数吗?

我在Windows上使用XAMPP。我已将Apache配置为将所有请求重定向到controller.php文件。Controller在任何其他处理发生之前将所有请求记录到数据库,并且它还做一些其他事情,包括检查访问相关文件的权限。大多数请求映射到一个文件,然后我使用适当的header和一个读取文件来提供该文件。例如:header('Content-Type:text/css');header('Content-Length:'.filesize($file));readfile($file);我的问题是,如果URL包含查询字符串,我不知道如何将其传递给文件。http:///myswf.

PHP array_key_exists 和 UTF 8

我有一个数据库,其中编码为UTF-8用于多语言目的。我认为我的应用程序中的所有内容都是UTF-8。尽管我对array_key_exists函数有疑问。首先查询数据库从表中选择名称,值然后我用结果填充HashMap:$hashmap[$row['name']]=$row['value']但是当数据库中的名称包含重音符如'é'时,以下返回false:$this->db->select('name');$this->db->select('value');$this->db->from('table');$q=$this->db->get();$res=$q->result_array();

php - 父类中抛出的异常未在子类中捕获

使用FacebookPHPSDK时会发生此错误,但实际上我认为这是一个一般性错误。当我运行这段代码时,一切正常,异常被捕获:$facebook=newFacebook('appId'=>APP_ID,'secret'=>APP_SECRET);try{$user_profile=$facebook->api('/me','GET');echo"Name:".$user_profile['name'];}catch(FacebookApiException$e){$login_url=$facebook->getLoginUrl();echo'Pleaselogin.';}但是当我运行这

php - 获取字符串的前 200 个字符而不破坏末尾的 HTML 标记

编辑:关键点是获取前200个字符并关闭所有打开的标签。我目前正在通过DOM对象从其他网站加载文章(其他网站没有RSS)。我想对该文章进行“预览”,但这是我的问题:我无法控制文章的编写方式,因此它似乎总是在第二个TR的表格中(他们使用CMS,而且很乱-请参见下面的示例)。它们有很多HTML标签,我不想让一个打开。我需要保留HTML格式,我知道它很难看,但它非常适合我的页面。不是我的代码(法语抱歉):13-01-2012Water-polo–Championnatpan-pacifiqueLesCanadiennesdisputerontlebronzeauxChinoisesMontr&

php - 如何将 PHP 闭包(lambda 函数)保存到 $this->var 中并稍后从同一类的另一个方法中调用它?

我有课classSomeClass{private$someVar;publicfunctionInit($func){$this->someVar=$func;}publicfunctionDoSomething(){$this->someVar("asdasdasd");}}$obj=newSomeClass();$obj->Init(function($param){var_dump($param);});$obj->DoSomething();当我调用方法DoSomething时,我得到一个错误,提示SomeClass::someVar()是未定义的方法。但是当我使用调试器时,

PHP模板字符串替换

只是想知道替换模板字符串的最佳方法是什么。preg_replace('/{%(\S+)%}/','bill',$tableOutput);使用preg_replace,如果有很多字符串需要替换,函数会根据需要替换的字符串的个数被调用多次。只是想知道是否有一种方法可以查看字符串一次并相应地替换?谢谢 最佳答案 使用preg_replace的数组语法...?preg_replace(array('/pattern1/','/pattern2/'),array('replacement1',...),...)

php - 使用dom在 curl 的html中获取图像的src

functiongetPage($url){$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$result=curl_exec($ch);curl_close($ch);return$result;}$page=getPage(trim('http://localhost/test/test.html'));$dom=newDOMDocument();$dom->loadHTML($page);$xp=newDOMXPath($dom);$result

php - PCRE:使用 PHP 捕获可选模式

我有一个字符串,我需要从中捕获一个或两个子字符串(使用PHP):第一个是必填项第二个是可选的第一个和第二个被不知名的垃圾隔开第二个可能会也可能不会跟着更多我不关心的垃圾我无法让我的模式捕获第二个模式,除非我在模式字符串中强制要求它。当主题中只有第一个模式可用时,这会使模式失败。我被难住了。这不应该那么难。这是我从上面得到的:Array([0]=>pattern111[1]=>pattern111[2]=>)似乎归结为我如何使{0,1}(即模式中最后的?运算符)更加贪婪(具有讽刺意味的是,作为量词修饰符,它的作用恰恰相反) 最佳答案